Why does the for of loop inside of an async function break instead of awaiting